﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace NetFrameworkExtensions.BusinessLayer.Csla4
{
  [Serializable]
  public abstract class CslaBusinessChildBase<TEntity, TIdentified, TIdentifier> :
    CslaBusinessBase<TEntity, TIdentified, TIdentifier>,
    IStringFieldsProvider
    where TEntity : class, IIdentified
    where TIdentified : CslaBusinessChildBase<TEntity, TIdentified, TIdentifier>
    where TIdentifier : IEquatable<TIdentifier>
  {
    #region [ IStringFieldsProvider ]
    IEnumerable<string> IStringFieldsProvider.FieldValues
    {
      get
      {
        return GetFieldValues();
      }
    }

    protected abstract IEnumerable<string> GetFieldValues();
    #endregion
  }
}
